Architectures for secure portable executable content
نویسندگان
چکیده
The Java programming language supports the concept of downloadable executable content; a key technology in a wide range of emerging applications including collaborative systems, electronic commerce, and Web information services. Java enables the execution of a program, on almost any modern computer regardless of hardware configuration and operating system. Safe-Tcl was proposed as an executable content type of MIME and thus as the standard language for executable contents within e-mail messages. However, the ability to download, integrate, and execute code from a remote computer, provided by both Java and Safe-Tcl, introduces serious security risks since it enables a malicious remote program to obtain unauthorised access to the downloading system’s resources. In this paper, the two proposed security models are described in detail and the efficiency and flexibility of current implementations are evaluated in a comparative manner. Finally, upcoming extensions are discussed. Internet Research: Electronic Networking Applications and Policy Volume 9 · Number 1 · 1999 · pp. 16–24 © MCB University Press · ISSN 1066-2243 they have fewer capabilities than the users who invoked them. The Safe-Tcl security model makes it possible to implement highly restrictive security policies for scripts of unknown origin as well as less restrictive policies for scripts whose authors are known and trusted. This paper evaluates the security features offered by the Java and Safe-Tcl programming languages and describes the basic mechanisms of each of the proposed security models. We present and compare the current implementations as well as upcoming extensions of the two security models, and evaluate their efficiency and flexibility. Although Microsoft’s Active-X technology also supports downloadable executable content and is based on an interesting security architecture it is not examined in this article because, in its current implementation, it is operating system and hardware specific. The Java security model Java was created to enable the development of programs in a heterogeneous network-wide environment. It allows Java-compatible Web browsers to download code fragments dynamically and then execute those code fragments on the local machine. Executable portability, meaning that a Java program (or applet) is portable not only in source code but also in compiled binary code, was therefore one of the major design goals of Java. The Java Virtual Machine (JVM), a system that simulates an abstract machine, is the part of the Java-compatible Web browser that provides this portability layer (Sun Microsystems, 1997a;1997b). The JVM architecture defines an instruction set, a register set, a stack, a garbage-collected heap, and a memory area. This architecture allows a single executable to run unmodified on many different systems. To achieve this, the Java compiler compiles Java code to an architecture independent object file format containing JVM code (or bytecodes), which is then interpreted by a processor-specific JVM implementation or compiled on the fly into the machine code of the particular processor. The aim of the Java security model is to protect users from malicious applets originating from untrusted sources across a network. Java provides a customisable “sandbox”, which is a dedicated area of the Web browser within which the actions of the applet are restricted. Within its sandbox the applet may do anything but access the user’s files, network connections, and other sensitive resources. The basic idea of the sandbox model is that programs loaded from the local file system are executed with full access to vital system resources, whereas executable content downloaded from a remote source is considered untrusted, and can therefore access only the limited resources provided inside the sandbox. The first release of the Java Development Kit (JDK 1.0) was based on the above described mechanism of the sandbox model. Overall security is enhanced through a number of mechanisms. First, the language itself was designed with security in mind so that every program that conforms to the language specification, automatically obeys basic low level security restrictions (Yellin, 1995). The most important features that make the Java language attractive as an environment to write safe code are the lack of pointer arithmetic, mandatory array bounds-check at runtime, the prohibition of casts of primitive types into reference types, and the automatic garbage collection. Security is provided by the JVM during the loading and verification of the JVM code. Applets are loaded from the network by the applet Class Loader which receives the bytecode instruction stream and converts it into internal data structures that represent the applet’s classes. The class loader, apart from fetching an applet’s executable content from the network, also enforces the name space hierarchy. By maintaining a separate name space for trusted code which was loaded from the local disk, the Class Loader prevents untrusted applets from gaining access to more privileged, trusted parts of the system. The bytecode verifier is invoked by the Class Loader, and before the execution of the newly imported applet, ensures that the applet conforms to the specifications of the Java language, and that there are no violations of name space restrictions or of memory accesses. The bytecode verifier, along with the properties of the JVM, guarantee language safety at runtime. The third component of the Java security model is the Security Manager, which restricts the way in which an applet can use visible interfaces by performing run-time checks on dangerous 17 Architectures for secure portable executable content Stefanos Gritzalis, George Aggelis and Diomidis Spinellis Internet Research: Electronic Networking Applications and Policy Volume 9 · Number 1 · 1999 · 16–24
منابع مشابه
Testing and evaluation of a secure integrity measurement system (SIMS) for remote systems
We have designed a novel system called a Secure Integrity Measurement System (SIMS) to provide a practical integrity for flexible and traditional remote systems. SIMS is not only targeted for Linux, but it can also be used for different operating systems such as Windows, and UNIX. All and executable content that are loaded onto any operating system is measured before execution. These measuremen...
متن کاملUsing Fuzzy Pattern Recognition to Detect Unknown Malicious Executables Code
An intelligent detect system to recognition unknown computer virus is proposed. Using the method based on fuzzy pattern recognition algorithm, a malicious executable code detection network model is designed also. This model target at Win32 binary viruses on Intel IA32 architectures. It could detect known and unknown malicious code by analyzing their behavior. We gathered 423 benign and 209 mali...
متن کاملThe Virtual Secretary Architecture for Secure Software Agents
The Virtual Secretary project focuses on the construction of an environment for secure software agents. As a research vehicle, i.e., to enable full-scale experiments in realistic settings, some major secretarial tasks have been chosen. Our environment for secure software agents includes propagation mechanisms, mechanisms for authentication and control, and common user software. A key element in...
متن کاملTowards a Portable Parallel Programming Environment
This paper presents an important project whose objective is to develop a Portable Parallel Programming Environment, called EPPP, for current and future generation parallel computers. Our environment will be portable in the sense that the user will be able to rapidly port his/her application on a variety of parallel architectures. That is, our goal is to allow the programmer to develop, debug an...
متن کاملResearch Directions for Automated Software Verification: Using Trusted Hardware
Service providers hosting software on servers at the request of content providers need assurance that the hosted software has no undesirable properties. This problem applies to browsers which host applets, networked software which can host software agents, etc. The hosted software's properties are currently verified by testing and/or verification processes by the hosting computer. This increase...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Internet Research
دوره 9 شماره
صفحات -
تاریخ انتشار 1999